package com.apimanage.api.service;

import com.apimanage.api.entity.Api;
import com.apimanage.api.entity.ApiVersion;

import java.util.List;
import java.util.Map;

/**
 * API服务接口
 *
 * @author API管理平台
 */

public interface ApiService {

    /**
     * 创建API
     */
    Api createApi(Api api);

    /**
     * 更新API
     */
    Api updateApi(Api api);

    /**
     * 删除API
     */
    boolean deleteApi(Long id);

    /**
     * 根据ID查询API
     */
    Api getApiById(Long id);

    /**
     * 分页查询API列表
     */
    List<Api> getApiPage(Map<String, Object> params);

    /**
     * 发布API
     */
    boolean publishApi(Long id);

    /**
     * 下线API
     */
    boolean offlineApi(Long id);

    /**
     * 创建API版本
     */
    ApiVersion createApiVersion(ApiVersion apiVersion);

    /**
     * 获取API版本列表
     */
    List<ApiVersion> getApiVersions(Long apiId);

    /**
     * 获取API当前版本
     */
    ApiVersion getCurrentVersion(Long apiId);

    /**
     * 设置API当前版本
     */
    boolean setCurrentVersion(Long versionId);
}